now the right side of my solution needs a rework, I thought I'd submit this now though, just in case it doesn't work out